Amazon Elastic Kubernetes Service (EKS) হলো একটি fully managed Kubernetes সার্ভিস যা AWS ক্লাউডে Kubernetes অ্যাপ্লিকেশন ডিপ্লয় এবং ম্যানেজ করতে সহায়তা করে। Kubernetes একটি ওপেন সোর্স অর্কেস্ট্রেশন টুল যা কন্টেইনারাইজড অ্যাপ্লিকেশনগুলিকে স্কেল, ম্যানেজ এবং অটোমেট করতে সহায়ক।
EKS ব্যবহার করে, AWS আপনার Kubernetes ক্লাস্টারকে সম্পূর্ণরূপে ম্যানেজ এবং স্কেল করে, যাতে ডেভেলপাররা কেবল তাদের অ্যাপ্লিকেশন এবং ডেপ্লয়মেন্ট প্রক্রিয়ার উপর মনোনিবেশ করতে পারেন। EKS একটি উচ্চমানের Kubernetes ক্লাস্টার তৈরির জন্য একটি সহজ এবং নিরাপদ উপায় প্রদান করে।
EKS ক্লাস্টার সেটআপের ধাপসমূহ
১. AWS EKS এর জন্য IAM রোল তৈরি করা
EKS ক্লাস্টার তৈরি করতে হলে, প্রথমে IAM রোল এবং পলিসি সেটআপ করতে হবে।
- AWS Management Console এ গিয়ে IAM সেকশনে যান।
- একটি নতুন IAM রোল তৈরি করুন, এবং এটিকে EKS এবং EC2 পরিষেবাগুলোর জন্য উপযুক্ত পলিসি অ্যাটাচ করুন। কিছু গুরুত্বপূর্ণ পলিসি হলো:
AmazonEKSClusterPolicyAmazonEKSServicePolicyAmazonEC2ContainerRegistryReadOnlyAmazonEKSWorkerNodePolicy
- রোলটি তৈরির পরে এটি Kubernetes ক্লাস্টার তৈরির সময় ব্যবহার করা হবে।
২. EKS ক্লাস্টার তৈরি করা
- AWS Management Console থেকে EKS সেকশন খুলুন।
- "Create cluster" অপশন নির্বাচন করুন।
- ক্লাস্টারের জন্য একটি নাম এবং Kubernetes ভার্সন নির্বাচন করুন।
- VPC নির্বাচন করুন বা একটি নতুন VPC তৈরি করুন। এই VPC-তে আপনার EKS ক্লাস্টার চলবে।
- ক্লাস্টার সুরক্ষার জন্য সঠিক security groups এবং IAM roles নির্বাচন করুন।
- ক্লাস্টারটি তৈরি হতে কিছু সময় লাগবে (৫-১০ মিনিট)।
EKS ক্লাস্টারটি তৈরি হওয়ার পর, আপনি kubectl CLI টুল ব্যবহার করে আপনার ক্লাস্টারের সাথে ইন্টারঅ্যাক্ট করতে পারবেন।
৩. kubectl সেটআপ করা
kubectl হল Kubernetes এর CLI টুল যা আপনাকে ক্লাস্টারের সাথে ইন্টারঅ্যাক্ট করতে সহায়ক।
AWS CLI এবং kubectl ইনস্টল করুন:
sudo apt-get install awscli sudo apt-get install kubectlEKS CLI Configuration: EKS ক্লাস্টারের সাথে যোগাযোগ করার জন্য আপনার AWS ক্লাউডক্রেডেনশিয়ালস এবং EKS ক্লাস্টারের কনফিগারেশন সেটআপ করুন।
aws eks --region <region> update-kubeconfig --name <cluster-name>
এটি EKS ক্লাস্টারের kubeconfig ফাইলটি আপডেট করবে, যা আপনাকে kubectl ব্যবহার করে ক্লাস্টারে কমান্ড পাঠানোর অনুমতি দেবে।
৪. EKS Worker Nodes অ্যাড করা
একটি EKS ক্লাস্টারে কাজ করার জন্য, আপনি EC2 ইনস্ট্যান্স হিসেবে worker nodes অ্যাড করতে হবে।
- প্রথমে, একটি EC2 Instance Role তৈরি করুন যা EKS এর জন্য প্রয়োজনীয় পলিসি (যেমন
AmazonEKSWorkerNodePolicy) অ্যাটাচ করবে। - এরপর EKS Node Group তৈরি করুন। Node Group সেটআপের সময় আপনি আপনার EC2 ইনস্ট্যান্স টাইপ, স্কেলিং প্যারামিটার (যেমন মিনি ও ম্যাক্স নোড সংখ্যা), এবং ইনস্ট্যান্স সাইজ নির্বাচন করতে পারবেন।
- যখন Node Group তৈরি হয়ে যাবে, তখন EC2 ইনস্ট্যান্সগুলি ক্লাস্টারে যুক্ত হয়ে যাবে এবং Kubernetes সিস্টেমে রান করতে থাকবে।
৫. ডেপ্লয়মেন্ট করা (Deployment)
Kubernetes ক্লাস্টারে অ্যাপ্লিকেশন ডিপ্লয় করতে, আপনাকে YAML ফাইল ব্যবহার করে পড এবং সার্ভিস তৈরি করতে হবে।
উদাহরণস্বরূপ, একটি সাধারণ ডেপ্লয়মেন্ট YAML ফাইল তৈরি করুন:
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx ports: - containerPort: 80এই YAML ফাইলটি Kubernetes ক্লাস্টারে অ্যাপ্লিকেশন ডিপ্লয় করতে ব্যবহার করা যাবে:
kubectl apply -f nginx-deployment.yaml
এটি ৩টি পড তৈরি করবে এবং সেগুলোর মধ্যে লোড ব্যালেন্সিং শুরু করবে।
EKS ক্লাস্টার ম্যানেজমেন্ট
EKS ক্লাস্টার ব্যবস্থাপনার জন্য কিছু গুরুত্বপূর্ণ টুলস এবং প্রক্রিয়া রয়েছে:
১. স্কেলিং (Scaling)
Horizontal Pod Autoscaling: এটি Kubernetes পডগুলির সংখ্যা স্বয়ংক্রিয়ভাবে বৃদ্ধি বা হ্রাস করতে পারে, যখন মেট্রিক্সের উপর ভিত্তি করে লোড পরিবর্তিত হয়।
kubectl autoscale deployment nginx-deployment --cpu-percent=50 --min=1 --max=10- Node Scaling: EKS এর Auto Scaling Group সেটিংস ব্যবহার করে নোডের সংখ্যা স্কেল করা যেতে পারে।
২. লগিং এবং মনিটরিং
- CloudWatch Logs এবং Prometheus ব্যবহার করে EKS ক্লাস্টারের পারফরম্যান্স মনিটরিং করা যায়।
- CloudWatch Metrics ব্যবহার করে আপনার Kubernetes ক্লাস্টারের হেলথ এবং পারফরম্যান্স মেট্রিক্স সংগ্রহ করা সম্ভব।
৩. আপডেট এবং মেইনটেন্যান্স
EKS ক্লাস্টারটির Kubernetes ভার্সন আপডেট করার জন্য AWS Management Console বা CLI ব্যবহার করা যেতে পারে:
aws eks update-cluster-version --name <cluster-name> --kubernetes-version <new-version>- Worker Node Update: Worker nodes আপডেট করতে হবে যদি আপনি নতুন Kubernetes ভার্সনে আপডেট করেন। এটি EC2 ইনস্ট্যান্সের মাধ্যমে করা হয়।
সারাংশ
EKS (Elastic Kubernetes Service) একটি fully managed Kubernetes সার্ভিস যা AWS ব্যবহারকারীদের ক্লাস্টারে অ্যাপ্লিকেশন ডিপ্লয়, ম্যানেজ এবং স্কেল করার জন্য একটি সুরক্ষিত এবং স্কেলেবল পরিবেশ প্রদান করে। EKS ক্লাস্টার সেটআপ প্রক্রিয়া সহজ হলেও, এর মধ্যে IAM রোল, VPC সেটআপ, worker nodes অ্যাড করা এবং ডেপ্লয়মেন্ট করার মতো গুরুত্বপূর্ণ ধাপ রয়েছে। EKS ক্লাস্টার ম্যানেজমেন্টের জন্য স্কেলিং, লগিং, মনিটরিং এবং আপডেটিং এর মতো গুরুত্বপূর্ণ কার্যক্রম AWS CLI বা কনসোলের মাধ্যমে সম্পন্ন করা যায়। EKS-এর মাধ্যমে আপনি Kubernetes ব্যবহার করে স্কেলেবল, ম্যানেজড এবং পারফরম্যান্স ভিত্তিক ডেপ্লয়মেন্ট অ্যাপ্লিকেশন তৈরি করতে পারেন।
Read more